מבני נתונים 08a תרגול 8 14/2/2008 המשך ערמות ליאור שפירא

Σχετικά έγγραφα
דף פתרונות 7 נושא: תחשיב הפסוקים: צורה דיסיונקטיבית נורמלית, מערכת קשרים שלמה, עקביות

פתרון תרגיל מרחבים וקטורים. x = s t ולכן. ur uur נסמן, ur uur לכן U הוא. ur uur. ur uur

[ ] Observability, Controllability תרגול 6. ( t) t t קונטרולבילית H למימדים!!) והאובז' דוגמא: x. נשתמש בעובדה ש ) SS rank( S) = rank( עבור מטריצה m

חורף תש''ע פתרון בחינה סופית מועד א'

ΑΛΓΟΡΙΘΜΟΙ Άνοιξη I. ΜΗΛΗΣ

תרגול פעולות מומצאות 3

מבני נתונים ואלגוריתמים תרגול #3 נושאים: תור קדימויות/ערימה, עצים

Physical DB Design. B-Trees Index files can become quite large for large main files Indices on index files are possible.

תרגול מס' 6 פתרון מערכת משוואות ליניארית

brookal/logic.html לוגיקה מתמטית תרגיל אלון ברוק

תרגיל 13 משפטי רול ולגראנז הערות

מתמטיקה בדידה תרגול מס' 13

עצי 2-3 תזכורת: בנים. דוגמאות: Chapter 19: B trees ( ) Chapter 15: Augmenting data structures ( )

פתרון תרגיל 8. מרחבים וקטורים פרישה, תלות \ אי-תלות לינארית, בסיס ומימד ... ( ) ( ) ( ) = L. uuruuruur. { v,v,v ( ) ( ) ( ) ( )

יסודות לוגיקה ותורת הקבוצות למערכות מידע (סמסטר ב 2012)

תאריך עדכון אחרון: 27 בפברואר ניתוח לשיעורין analysis) (amortized הוא טכניקה לניתוח זמן ריצה לסדרת פעולות, אשר מאפשר קבלת

אלגברה לינארית (1) - פתרון תרגיל 11

אלגברה מודרנית פתרון שיעורי בית 6

Δομές Δεδομένων Ενότητα 5

מתמטיקה בדידה תרגול מס' 5

אלגברה ליניארית (1) - תרגיל 6

Δομές Δεδομένων & Αλγόριθμοι

מבני נתונים ויעילות אלגוריתמים

gcd 24,15 = 3 3 =

EE512: Error Control Coding

תרגול 1 חזרה טורי פורייה והתמרות אינטגרליות חורף תשע"ב זהויות טריגונומטריות

{ : Halts on every input}

אלגברה ליניארית 1 א' פתרון 2

אינפי - 1 תרגול בינואר 2012

ל הזכויות שמורות לדפנה וסטרייך

logn) = nlog. log(2n

Logic and Set Theory for Comp. Sci.

אלגוריתמים בתורת הגרפים חלק ראשון

מבני נתונים (234218) 1

כלליים זמן: S מחסנית, top(s) ראש המחסנית. (Depth First Search) For each unmarked DFS(v) / BFS(v) רקורסיבי. אלגוריתם :BFS

הרצאה תרגילים סמינר תורת המספרים, סמסטר אביב פרופ' יעקב ורשבסקי

CHAPTER 25 SOLVING EQUATIONS BY ITERATIVE METHODS

TECHNION - ISRAEL INSTITUTE OF TECHNOLOGY DEPARTMENT OF COMPUTER SCIENCE סמסטר אביב תשס"ו מס' סטודנט:

פתרון תרגיל 6 ממשוואות למבנים אלגברה למדעי ההוראה.

Δομές Δεδομένων (Data Structures)

משוואות רקורסיביות רקורסיה זו משוואה או אי שוויון אשר מתארת פונקציה בעזרת ערכי הפונקציה על ארגומנטים קטנים. למשל: יונתן יניב, דוד וייץ

השאלות..h(k) = k mod m

שדות תזכורת: פולינום ממעלה 2 או 3 מעל שדה הוא פריק אם ורק אם יש לו שורש בשדה. שקיימים 5 מספרים שלמים שונים , ראשוני. שעבורם

במשחקים בצורה אסטרטגית: השחקנים בוחרים אסטרטגיות במקביל ובצורה בלתי תלויה. מייד לאחר מכן מסתיים המשחק. נרצה לדון במשחקים מסוג אחר: השחקנים משחקים לפי

מבני נתונים ויעילות אלגוריתמים

2 יח"ל ) השלמה ל - 5 יח"ל) (50 נקודות) מעבר חוקי, ו-'שקר' אחרת.

תרגול משפט הדיברגנץ. D תחום חסום וסגור בעל שפה חלקה למדי D, ותהי F פו' וקטורית :F, R n R n אזי: נוסחת גרין I: הוכחה: F = u v כאשר u פו' סקלרית:

מודלים חישוביים פתרון תרגיל 5

לוגיקה ותורת הקבוצות פתרון תרגיל בית 4 אביב תשע"ו (2016)

תכנון דינאמי. , p p p והמטריצה המתקבלת היא בגודל

פתרון תרגיל בית 6 מבוא לתורת החבורות סמסטר א תשע ז

Finite Field Problems: Solutions

תרגיל 7 פונקציות טריגונומטריות הערות

AVL-trees C++ implementation

אלגוריתמים / תרגיל #1

פתרון תרגיל 5 מבוא ללוגיקה ותורת הקבוצות, סתיו תשע"ד

(2) מיונים השאלות. .0 left right n 1. void Sort(int A[], int left, int right) { int p;

םינותנ ינבמ (הנכות ידימלתל)

( )( ) ( ) f : B C היא פונקציה חח"ע ועל מכיוון שהיא מוגדרת ע"י. מכיוון ש f היא פונקציהאז )) 2 ( ( = ) ( ( )) היא פונקציה חח"ע אז ועל פי הגדרת

מכניקה אנליטית תרגול 6

קיום ויחידות פתרונות למשוואות דיפרנציאליות

צעד ראשון להצטיינות מבוא: קבוצות מיוחדות של מספרים ממשיים

תורת הגרפים - סימונים

Ευρετήρια. Βάσεις Δεδομένων. Διδάσκων: Μαρία Χαλκίδη

Homework 3 Solutions

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών

השאלות ידי מצביעים לילדים.

הגדרה: קבוצת פעילויות חוקית היא קבוצה בה כל שתי פעילויות

co ארזים 3 במרץ 2016

מבני נתונים הגבלת אחריות פרק - 1 אלגוריתמי מיון ואנליזה אסימפטוטית. מיון בועות Sort Bubble מאת : סשה גולדשטיין,

. {e M: x e} מתקיים = 1 x X Y

Solutions to Exercise Sheet 5

אוטומט סופי דטרמיניסטי מוגדר ע"י החמישייה:

מבני נתונים מבחן מועד ב' סמסטר חורף תשס"ו

ST5224: Advanced Statistical Theory II

משפטי בקרה ולולאות שעור מס. 3 כל הזכויות שמורות דר' דרור טובי המרכז האוניברסיטאי אריאל

עץץץץ AVL. עץ AVL הוא עץ חיפוש בינארי שמקיים את התנאי הבא: לכל צומת x בעץ גורם האיזון של x הוא 1, 0, או 1-. הגדרה: במילים אחרות: לכל צומת x בעץ,

Συστήματα Διαχείρισης Βάσεων Δεδομένων

מבני נתונים אדמיניסטרציה ד"ר אלכס סמורודניצקי, רוס 210, שני 5:30 4:15. ציון:

' 2 סמ ליגרת ןורתפ םיפרגה תרותב םימתירוגלא דדצ 1 : הלאש ןורתפ רבסה תורעה

אוניברסיטת בר אילן מבני נתונים תרגולים מרצה: פרופ' שמואל טומי קליין סמסטר ב', תש"ע

לדוגמה: במפורט: x C. ,a,7 ו- 13. כלומר בקיצור

תורת המספרים 1 פירוק לגורמים ראשוניים סיכום הגדרות טענות ומשפטים אביב הגדרות 1.2 טענות

אלגברה ליניארית 1 א' פתרון 8

אלגוריתמים בתורת הגרפים חלק שני

דוגמה: יהי T עץ בינארי כפי שמתואר בציור הבא:

התפלגות χ: Analyze. Non parametric test

מיונים א': מיון (Sorting) HeapSort. QuickSort תור עדיפויות / ערימה

פרק 8: עצים. .(Tree) במשפטים הגדרה: גרף ללא מעגלים נקרא יער. דוגמה 8.1: תרגילים: הקודקודים 2 ו- 6 בדוגמה הוא ).

לוגיקה ותורת הקבוצות פתרון תרגיל בית 8 חורף תשע"ו ( ) ... חלק ראשון: שאלות שאינן להגשה נפריד למקרים:

Domain Relational Calculus דוגמאות. {<bn> dn(<dn, bn> likes dn = Yossi )}

ω ω ω ω ω ω+2 ω ω+2 + ω ω ω ω+2 + ω ω+1 ω ω+2 2 ω ω ω ω ω ω ω ω+1 ω ω2 ω ω2 + ω ω ω2 + ω ω ω ω2 + ω ω+1 ω ω2 + ω ω+1 + ω ω ω ω2 + ω

תורת הקבוצות תרגיל בית 2 פתרונות

אוטומטים- תרגול 8 שפות חסרות הקשר

The No Arbitrage Theorem for Factor Models ג'רמי שיף - המחלקה למתמטיקה, אוניברסיטת בר-אילן

1 תוחלת מותנה. c ארזים 3 במאי G מדיד לפי Y.1 E (X1 A ) = E (Y 1 A )

אלגברה ליניארית 1 א' פתרון 7

Nir Adar גירסה 1.00 עמוד 1

הרצאה. α α פלוני, וכדומה. הזוויות α ל- β שווה ל-

סיכום- בעיות מינימוםמקסימום - שאלון 806

Transcript:

מבני נתונים 08a תרגול 8 14/2/2008 המשך ערמות ליאור שפירא

ערמות פיבונאצ'י Operation Linked List Binary Heap Binomial Heap Fibonacci Heap Relaxed Heap make-heap 1 1 1 1 1 is-empty 1 1 1 1 1 insert 1 log n log n 1 1 delete- n log n log n log n log n decrease-key n log n log n 1 1 delete n log n log n log n log n union 1 n log n 1 1 find- n 1 log n 1 1 n = number of elements in priority queue amortized

ערימות פיבונאצ'י - מבנה Fibonacci heap. each parent larger than its children Set of heap-ordered trees. Maintain pointer to imum element. Set of marked nodes. roots heap-ordered tree 1 24 3 26 46 18 52 Heap H 3 35 44

ערימות פיבונאצ'י - מבנה Fibonacci heap. Set of heap-ordered trees. Maintain pointer to imum element. Set of marked nodes. find- takes O(1) time 1 24 3 26 46 18 52 Heap H 4 35 44

ערימות פיבונאצ'י - מבנה Fibonacci heap. Set of heap-ordered trees. Maintain pointer to imum element. Set of marked nodes. use to keep heaps flat (stay tuned) 1 24 3 26 46 18 52 Heap H 5 35 marked 44

Cascading cuts & Successive linking פעולת delete- יודעים מי המינימום בערימה נתלה את הבנים שלו כעצים בערימה מכל דרגה עץ יחיד! נבצע successive linking 24 1 3 26 46 18 52 35 44

Cascading cuts & Successive linking פעולת delete- יודעים מי המינימום בערימה נתלה את הבנים שלו כעצים בערימה מכל דרגה עץ יחיד! נבצע successive linking 24 1 18 52 26 46 44 35

Cascading cuts & Successive linking פעולת delete- יודעים מי המינימום בערימה נתלה את הבנים שלו כעצים בערימה מכל דרגה עץ יחיד! נבצע successive linking עלות הפעולה: Amortized O(rank(H)) 52 18 24 1 26 46 44 35

Cascading cuts & Successive linking decrease-key פעולת אינטואיציה: אם חוק הערמה לא מופר, פשוט נשנה את ערך הצומת אחרת נחתוך את תת העץ של הצומת ונתלה כעץ חדש בכדי לשמור על עצים שטוחים יחסית, ברגע שחותכים בן שני לצומת מסוים, גם הוא נתלה כעץ חדש 18 38 marked node: one child already cut 24 1 21 26 46 52 35 88 2

Fibonacci Heaps: Decrease Key Case 1. [heap order not violated] Decrease key of x. Change heap pointer (if necessary). 18 38 24 1 21 26 46 29 52 x 10 35 88 2 decrease-key of x from 46 to 29

Fibonacci Heaps: Decrease Key Case 1. [heap order not violated] Decrease key of x. Change heap pointer (if necessary). 18 38 24 1 21 26 29 52 x 11 35 88 2 decrease-key of x from 46 to 29

Fibonacci Heaps: Decrease Key Case 2a. [heap order violated] Decrease key of x. Cut tree rooted at x, meld into root list, and unmark. If parent p of x is unmarked (hasn't yet lost a child), mark it; Otherwise, cut p, meld into root list, and unmark (and do so recursively for all ancestors that lose a second child). 18 38 24 1 21 p 26 29 15 52 x 12 35 88 2 decrease-key of x from 29 to 15

Fibonacci Heaps: Decrease Key Case 2a. [heap order violated] Decrease key of x. Cut tree rooted at x, meld into root list, and unmark. If parent p of x is unmarked (hasn't yet lost a child), mark it; Otherwise, cut p, meld into root list, and unmark (and do so recursively for all ancestors that lose a second child). 18 38 24 1 21 p 26 15 52 x 13 35 88 2 decrease-key of x from 29 to 15

Fibonacci Heaps: Decrease Key Case 2a. [heap order violated] Decrease key of x. Cut tree rooted at x, meld into root list, and unmark. If parent p of x is unmarked (hasn't yet lost a child), mark it; Otherwise, cut p, meld into root list, and unmark (and do so recursively for all ancestors that lose a second child). x 15 18 38 2 24 1 p 21 26 52 14 35 88 decrease-key of x from 29 to 15

Fibonacci Heaps: Decrease Key Case 2a. [heap order violated] Decrease key of x. Cut tree rooted at x, meld into root list, and unmark. If parent p of x is unmarked (hasn't yet lost a child), mark it; Otherwise, cut p, meld into root list, and unmark (and do so recursively for all ancestors that lose a second child). x 15 18 38 2 mark parent 24 1 p 21 26 52 15 35 88 decrease-key of x from 29 to 15

Fibonacci Heaps: Decrease Key Case 2b. [heap order violated] Decrease key of x. Cut tree rooted at x, meld into root list, and unmark. If parent p of x is unmarked (hasn't yet lost a child), mark it; Otherwise, cut p, meld into root list, and unmark (and do so recursively for all ancestors that lose a second child). 15 18 38 2 24 1 21 p 26 52 16 x 35 5 88 decrease-key of x from 35 to 5

Fibonacci Heaps: Decrease Key Case 2b. [heap order violated] Decrease key of x. Cut tree rooted at x, meld into root list, and unmark. If parent p of x is unmarked (hasn't yet lost a child), mark it; Otherwise, cut p, meld into root list, and unmark (and do so recursively for all ancestors that lose a second child). 15 18 38 2 24 1 21 p 26 52 1 x 5 88 decrease-key of x from 35 to 5

Fibonacci Heaps: Decrease Key Case 2b. [heap order violated] Decrease key of x. Cut tree rooted at x, meld into root list, and unmark. If parent p of x is unmarked (hasn't yet lost a child), mark it; Otherwise, cut p, meld into root list, and unmark (and do so recursively for all ancestors that lose a second child). 15 x 5 18 38 2 24 1 21 p 26 52 18 88 decrease-key of x from 35 to 5

Fibonacci Heaps: Decrease Key Case 2b. [heap order violated] Decrease key of x. Cut tree rooted at x, meld into root list, and unmark. If parent p of x is unmarked (hasn't yet lost a child), mark it; Otherwise, cut p, meld into root list, and unmark (and do so recursively for all ancestors that lose a second child). 15 x 5 18 38 2 second child cut 24 1 21 p 26 52 19 88 decrease-key of x from 35 to 5

Fibonacci Heaps: Decrease Key Case 2b. [heap order violated] Decrease key of x. Cut tree rooted at x, meld into root list, and unmark. If parent p of x is unmarked (hasn't yet lost a child), mark it; Otherwise, cut p, meld into root list, and unmark (and do so recursively for all ancestors that lose a second child). 15 x 5 p 26 18 38 2 88 24 1 21 52 20 decrease-key of x from 35 to 5

Fibonacci Heaps: Decrease Key Case 2b. [heap order violated] Decrease key of x. Cut tree rooted at x, meld into root list, and unmark. If parent p of x is unmarked (hasn't yet lost a child), mark it; Otherwise, cut p, meld into root list, and unmark (and do so recursively for all ancestors that lose a second child). 15 x 5 p 26 18 38 2 88 24 p' 1 21 second child cut 52 21 decrease-key of x from 35 to 5

Fibonacci Heaps: Decrease Key Case 2b. [heap order violated] Decrease key of x. Cut tree rooted at x, meld into root list, and unmark. If parent p of x is unmarked (hasn't yet lost a child), mark it; Otherwise, cut p, meld into root list, and unmark (and do so recursively for all ancestors that lose a second child). x p p' 15 5 26 24 p'' 18 38 2 88 don't mark parent if it's a root 1 21 52 22 decrease-key of x from 35 to 5

ערמות פיבונצ'י כמו שראיתם בכיתה: Rank(H)<log Ф (n)

שאלה משבוע שעבר בהינתן מימוש של Fibonacci heaps בו לא מתבצע,cascading cuts הראו שעבור סדרת m פעולות על מקס' n אברים, עלות פעולה ממוצעת גבוהה ככל האפשר קצת תזכורת פעולות decrease-key מאד מהירות בעת פעולת extract- )זמן קבוע( נבצע consolidate דרגת כל צומת הינה D(n) והיא חסומה ע"י O(logn)

שאלה משבוע שעבר בהינתן שאין,cascading cuts מה משתנה ב"מה שמובטח לנו"? ז.א איפה השתמשנו בידע שלא ניתן להוריד 2 בנים מצומת בלי שהוא ייחתך? בהוכחה שהדרגה המקסימלית O(logn) )חסם על )D(n) איפה משתמשים בעובדה זו? ב- extract נעבור על כל השורשים )מקס' )D(n) ז"א אם נגיע למצב שבו יש הרבה מאד עצים בערמה, כל פעולה תהיה יקרה מעבר לכך, אם כל עץ מדרגה שונה, פעולת ה- consolidate לא תחבר עצים ביחד

שאלה משבוע שעבר כיצד נגדיר עץ מדרגה k שהוא "ממש גרוע"? נגדיר עץ מיוחד מדרגה.k-rank star k זהו שורש עם k בנים, כולם עלים. K=2 K=1 K=8

שאלה משבוע שעבר הפתרון יורכב משני שלבים.1.2 בסדרה של f(n) שלבים, בנו ערמת פיבונצ'י כך שיש 1 rank-0 star 1 rank-1 star 1 rank-sqrt(n) star חזרו על הפעולות הבאות מספר רב של פעמים )O(m)( הכנס ערך X ממש קטן בצע extract- )מוחק את X( כל אחת מהפעולות לוקחת Ω( n) זמן, כך שעבור m>>n פעולה תיקח בממוצע n

שאלה משבוע שעבר אך כיצד בונים?k-rank star כיצד נוודא שבשום שלב לא יהיו יותר מ- n אברים בערמה? פתרון )באינדוקציה( K 2 K elements 2 -(k-1) elements k 2 -(k-1)>(k-1) 2 K-1 rank star... K-1 rank star...

שאלה משבוע שעבר אך כיצד בונים?k-rank star כיצד נוודא שבשום שלב לא יהיו יותר מ- n אברים בערמה? פתרון K-1 rank star K-1 rank star...... K rank star...

ערמות פיבונאצ'י תרגיל 2 האם ניתן לבנות ערמת פיבונאצ'י ובה עץ אחד מעומק n? פתרון עבור n=1 5 9 עבור 2=n Extract- 9

ערמות פיבונאצ'י תרגיל 2 האם ניתן לבנות ערמת פיבונאצ'י ובה עץ אחד מעומק n? key[ z '] k ey[ y '] key[ x '] [ H] פתרון נניח שאנו יודעים לפתור עבור n=k נפתור עבור n=k+1 נגדיר x,y,z כך ש- נכניס אותם לתוך הערמה 5 9 20 25 35

ערמות פיבונאצ'י תרגיל 2 האם ניתן לבנות ערמת פיבונאצ'י ובה עץ אחד מעומק n? key[ z '] k ey[ y '] key[ x '] [ H] 5 9 20 פתרון נניח שאנו יודעים לפתור עבור n=k נפתור עבור n=k+1 נגדיר x,y,z כך ש- נכניס אותם לתוך הערמה נפעיל extract- 25 35

ערמות פיבונאצ'י תרגיל 2 האם ניתן לבנות ערמת פיבונאצ'י ובה עץ אחד מעומק n? key[ z '] k ey[ y '] key[ x '] [ H] 20 פתרון נניח שאנו יודעים לפתור עבור n=k נפתור עבור n=k+1 נגדיר x,y,z כך ש- נכניס אותם לתוך הערמה נפעיל extract- 9 25 35

ערמות פיבונאצ'י תרגיל 2 האם ניתן לבנות ערמת פיבונאצ'י ובה עץ אחד מעומק n? key[ z '] k ey[ y '] key[ x '] [ H] 9 20 פתרון נניח שאנו יודעים לפתור עבור n=k נפתור עבור n=k+1 נגדיר x,y,z כך ש- נכניס אותם לתוך הערמה נפעיל extract- )9( נמחק את x 25 35

תרגיל 3 בערמות פיבונצ'י, אנחנו מבצעים cascading cuts בצומת v אם הוא איבד צומת בן מאז הפעם האחרונה שהוא נתלה על צומת אחרת. נניח שנבצע CC רק אם v איבד שני בנים מאז, כיצד משתנה הלמה: x צומת בערמת פיב', y 1 y,, n בנים של x, מסודרים לפי הסדר בו נתלו על i. לכל rank(y i ישן ועד הכי חדש(. אזי 2-i ( )הכי x

Answer rank(y i ) i-3 Since y i had the same rank as x when it became a child of x תרגיל 3 x must have had at least i-1 children at that time, so y i had at least i-1 rank. It could have lost at most two children since then, therefore rank at least i-3

הסוף